// 泛型约束 加上 泛型默认值
function foo<T extends { length: number } = string>(arg: T): T {
    return arg
}

const f1 = foo({ length: 30 })
const f2 = foo('12')
const f3 = foo([])

function getInfo(xxx: { length: number }) {
    return xxx
}
// 丢失类型 使用上面的可以一直保留参数类型
const r1 = getInfo([])
const r2 = getInfo('123')

export { }
